home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 98 / Skunkware 98.iso / src / interp / perl5.005.tar.gz / perl5.005.tar / perl5.005 / regcomp.sym < prev    next >
Text File  |  1998-06-28  |  5KB  |  113 lines

  1. # Format:
  2. # NAME \t TYPE, arg-description [num-args] [longjump-len] \t DESCRIPTION
  3.  
  4. # Empty rows and #-comment rows are ignored.
  5.  
  6. # Exit points
  7. END        END,    no    End of program.
  8. SUCCEED        END,    no    Return from a subroutine, basically.
  9.  
  10. # Anchors:
  11. BOL        BOL,    no    Match "" at beginning of line.
  12. MBOL        BOL,    no    Same, assuming multiline.
  13. SBOL        BOL,    no    Same, assuming singleline.
  14. EOS        EOL,    no    Match "" at end of string.
  15. EOL        EOL,    no    Match "" at end of line.
  16. MEOL        EOL,    no    Same, assuming multiline.
  17. SEOL        EOL,    no    Same, assuming singleline.
  18. BOUND        BOUND,  no    Match "" at any word boundary
  19. BOUNDL        BOUND,  no    Match "" at any word boundary
  20. NBOUND        NBOUND, no    Match "" at any word non-boundary
  21. NBOUNDL        NBOUND, no    Match "" at any word non-boundary
  22. GPOS        GPOS,   no    Matches where last m//g left off.
  23.  
  24. # [Special] alternatives
  25. ANY        ANY,    no    Match any one character (except newline).
  26. SANY        ANY,    no    Match any one character.
  27. ANYOF        ANYOF,  sv    Match character in (or not in) this class.
  28. ALNUM        ALNUM,  no    Match any alphanumeric character
  29. ALNUML        ALNUM,  no    Match any alphanumeric char in locale
  30. NALNUM        NALNUM, no    Match any non-alphanumeric character
  31. NALNUML        NALNUM, no    Match any non-alphanumeric char in locale
  32. SPACE        SPACE,  no    Match any whitespace character
  33. SPACEL        SPACE,  no    Match any whitespace char in locale
  34. NSPACE        NSPACE, no    Match any non-whitespace character
  35. NSPACEL        NSPACE, no    Match any non-whitespace char in locale
  36. DIGIT        DIGIT,  no    Match any numeric character
  37. NDIGIT        NDIGIT, no    Match any non-numeric character
  38.  
  39. # BRANCH    The set of branches constituting a single choice are hooked
  40. #        together with their "next" pointers, since precedence prevents
  41. #        anything being concatenated to any individual branch.  The
  42. #        "next" pointer of the last BRANCH in a choice points to the
  43. #        thing following the whole choice.  This is also where the
  44. #        final "next" pointer of each individual branch points; each
  45. #        branch starts with the operand node of a BRANCH node.
  46. #
  47. BRANCH        BRANCH, node    Match this alternative, or the next...
  48.  
  49. # BACK        Normal "next" pointers all implicitly point forward; BACK
  50. #        exists to make loop structures possible.
  51. # not used
  52. BACK        BACK,   no    Match "", "next" ptr points backward.
  53.  
  54. # Literals
  55. EXACT        EXACT,  sv    Match this string (preceded by length).
  56. EXACTF        EXACT,  sv    Match this string, folded (prec. by length).
  57. EXACTFL        EXACT,  sv    Match this string, folded in locale (w/len).
  58.  
  59. # Do nothing
  60. NOTHING        NOTHING,no    Match empty string.
  61. # A variant of above which delimits a group, thus stops optimizations
  62. TAIL        NOTHING,no    Match empty string. Can jump here from outside.
  63.  
  64. # STAR,PLUS    '?', and complex '*' and '+', are implemented as circular
  65. #        BRANCH structures using BACK.  Simple cases (one character
  66. #        per match) are implemented with STAR and PLUS for speed
  67. #        and to minimize recursive plunges.
  68. #
  69. STAR        STAR,   node    Match this (simple) thing 0 or more times.
  70. PLUS        PLUS,   node    Match this (simple) thing 1 or more times.
  71.  
  72. CURLY        CURLY,  sv 2    Match this simple thing {n,m} times.
  73. CURLYN        CURLY,  no 2    Match next-after-this simple thing 
  74. #                {n,m} times, set parenths.
  75. CURLYM        CURLY,  no 2    Match this medium-complex thing {n,m} times.
  76. CURLYX        CURLY,  sv 2    Match this complex thing {n,m} times.
  77.  
  78. # This terminator creates a loop structure for CURLYX
  79. WHILEM        WHILEM, no    Do curly processing and see if rest matches.
  80.  
  81. # OPEN,CLOSE,GROUPP    ...are numbered at compile time.
  82. OPEN        OPEN,   num 1    Mark this point in input as start of #n.
  83. CLOSE        CLOSE,  num 1    Analogous to OPEN.
  84.  
  85. REF        REF,    num 1    Match some already matched string
  86. REFF        REF,    num 1    Match already matched string, folded
  87. REFFL        REF,    num 1    Match already matched string, folded in loc.
  88.  
  89. # grouping assertions
  90. IFMATCH        BRANCHJ,off 1 2    Succeeds if the following matches.
  91. UNLESSM        BRANCHJ,off 1 2    Fails if the following matches.
  92. SUSPEND        BRANCHJ,off 1 1    "Independent" sub-RE.
  93. IFTHEN        BRANCHJ,off 1 1    Switch, should be preceeded by switcher .
  94. GROUPP        GROUPP, num 1    Whether the group matched.
  95.  
  96. # Support for long RE
  97. LONGJMP        LONGJMP,off 1 1    Jump far away.
  98. BRANCHJ        BRANCHJ,off 1 1    BRANCH with long offset.
  99.  
  100. # The heavy worker
  101. EVAL        EVAL,   evl 1    Execute some Perl code.
  102.  
  103. # Modifiers
  104. MINMOD        MINMOD, no    Next operator is not greedy.
  105. LOGICAL        LOGICAL,no    Next opcode should set the flag only.
  106.  
  107. # This is not used yet
  108. RENUM        BRANCHJ,off 1 1    Group with independently numbered parens.
  109.  
  110. # This is not really a node, but an optimized away piece of a "long" node.
  111. # To simplify debugging output, we mark it as if it were a node
  112. OPTIMIZED    NOTHING,off    Placeholder for dump.
  113.